home *** CD-ROM | disk | FTP | other *** search
-
- MIDInet -Das Netzwerkprogramm für den Atari ST
-
-
- Ein professionelles Netzwerk ohne zusätzliche Hardware: Unser
- Projekt gestattet Ihnen die Vernetzung von bis zu 15 ST-
- Computern untereinander. Alles was Sie benötigen ist eine
- Diskette und etwas Kabel.
-
- Ja, Sie haben sich nicht verlesen. Für dieses Netzwerkprogramm
- benötigt man kein teures Steckmodul oder komplizierte Hardware
- sondern Lediglich einige Meter handelsübliches Stereo-
- Überspielkabel. Als Bastler empfehlen wir 5-adriges, einzeln
- abgegeschirmte Schaltkabel.
-
- Das MIDInet-Programm ist für bis zu 15 Computer ausgelegt. Es
- läuft auf allen Modellen der ST-Serie vom 260 ST bis zum Mega ST4.
- Für jeden ans Netz angeschlossenen ist ein Kabel notwendig. Im
- Betrieb haben wir bisher Verbindungskabel von bis zu 15 Metern
- Länge erprobt und keine Datenverluste hinnehmen müssen.
-
- Anstoβ zur Entwicklung von MIDInet war die Tatsache, daβ bei
- uns die Arbeit mit drei ST-Computern äuβerst lästig wurde. Für
- einen Datenaustausch ist der Gang mit einer Diskette zum nächsten
- Anwender unumgänglich. Da dies den Arbeitsfluβ mehr hemmt als
- nützt, fiel die Entscheidung zu einem Netzwerk nicht schwer. Da
- im Handel keine preisgünstigen Netzwerkprogramme erhältlich sind,
- nahmen wir die Entwicklung eines eigenen ST-Netzes in Angriff.
-
- Wie der Name MIDInet sagt, verwendet das Programm die MIDI-
- Schnittstelle des Computers. Damit sind schon als höchste
- Übertragungsgeschwindigkeit 3125 Byte je Sekunde festgelegt. Bei
- der Datenübermittlung über das Netz erreichen Sie jedoch maxinal
- 1700 Byte pro Sekunde. Welche Faktoren die Geschwindigkeit
- beeinflussen, sehen wir später.
-
- MIDInet verbindet bis zu 15 Teilnehmer. Jeder Computer erhält
- dabei eine eigene Nummer, unter der er zu erreichen ist. Mit
- jedem Gerät können Sie Kurzmitteilungen an einen oder mehrere
- Teilnehmer schicken, Dateien senden oder von einem anderen
- Computer anfordern.
-
- Das bedeutet, daβ jeder Redakteur Zugriff auf die
- Diskettenlaufwerke und Festplatten der anderen hat (Bild 1). So
- ist Die Arbeit an gröβeren Projekten in Teamarbeitet gegeben.
- Eine Festplatte dient als Massenspeicher zum sichern aller
- Quelltexte, Programme und Daten. Allerdings ist eine Festplatte
- keine Voraussetzung für den Einsdatz von MIDInet.
-
- Alle an das Netz angeschlossenen Computer sind ringförmig
- miteinander verbunden. Midi Out des ersten Gerätes ist mit an
- Midi In des zweiten gekoppelt. So verfahren Sie mit allen zu
- vernetzenden Computern. Das Siganl Midi Out des letzten Gerätes
- verbindet man am Schluβ mit Midi In des ersten. Achten Sie bitte
- darauf, niemals Midi In zweier Computer miteinander zu verbinden.
- Die Entfernung zwischen zwei benachbarten Computern darf nach
- unserer Schätzung bis zu 50 Meter betragen.
-
- Im Folgenden erklären wir die Datenübertragung. Wer mit
- MIDInet arbeitet, benötigt keine speziellen Kenntnisse über
- Netzwerke oder Datenübertragungen. Lediglich die Bedienung der
- Maus sollte dem Anwender vertraut sein (Bild 2).
-
- Das Betriebssystem stellt die Befehle bconin (BIOS 2) und
- bconout (BIOS 3) zur Verfügung, mit denen man jeweils ein Zeichen
- senden bezeihungsweise empfangen kann. Über bconstat (BIOS 1)
- kann man prüfen, ob ein Zeichen im Puffer bereitsteht.
-
- Zur Vereinfachung ist der Datenverkehr auf dem Netz blockweise
- organisiert, deren Übertragung zeichenweise mit bconin und
- bconout erfolgt. Die Schnittstelle hat einen vom Betriebssystem
- gestellten Puffer von 128 Byte. Um Pufferüberläufe und damit
- Datenverluste vollkommen auszuschlieβen, sind die Blocks auf die
- Länge von 128 Byte begrenzt. Bild 3 zeigt den Aufbau eines
- Datenblocks, von denen es drei verschiedene gibt.
-
- Das >>nullte<< Byte enthält in den oberen vier Bit die Nummer
- des Absenders und in den unteren die des Empfängers. Das
- >>erste<< beinhaltet die Länge des restlichen Blocks (ohne
- Prüfsumme), dann kommen bis zu 124 Byte Daten. Am Schluβ steht
- ein Kennzeichen, welches das Ende der Daten signalisiert; ihm
- gefolgt noch eine Prüfsumme. Insgesamt ergibt dies eine Länge von
- 128 Byte. Das Schluβzeichen markiert nicht das Ende des Blocks,
- sondern zeigt an, ob zu der übertragenden Datei noch weitere
- Blocks gehören oder nicht. Die Prüfsumme dient zur Erkennung von
- Übertragungsfehlern. Eventuell auftretende Fehler korrigiert
- MIDInet automatisch.
-
- Zwei andere Arten von Blocks müssen noch erklärt werden. Zur
- Verhinderung von Datensalat und Pufferüberläufen darf immer nur
- ein Computer gleichzeitig Informationen übertragen. Für die
- Synchronisation der Computer untereinander verwenden wir die
- zweite Blockart, das Freizeichen (Bild 4). Es besteht nur aus
- einem Nullbyte und kreist fast immer auf dem Netz. Kommt das
- Freizeichen bei einem Computer an, muβ er prüfen, ob er das Netz
- in Anspruch nehmen soll. Ist dies nicht der fall, so sendet der
- Computer das Freizeichen so schnell wie möglich weiter.
-
- Will sich ein Teilnehmer in das Netz einschalten, so sendet
- sein Computer statt des Freiezeichens einfach einen Datenblock.
- Dieser Block läuft über die vernetzten Geräte bis zum
- Zielcomputer. Der Empfänger kopiert den Datenblock in einen
- internen Puffer und sendet seinerseits den Bestätigungsblock
- (Bild 5). Das ist die dritte Blockart. Der Datenteil eines
- Bestätigungsblocks hat die Länge 0. Netze, die solche Freizeichen
- verwenden, nennt man Token-Ring-Netze.
-
- Die Geschwindigkeit eines Netzwerkes bestimmt gröβtenteils
- die für jeden Transfer notwendige Bearbeitungszeit, denn jeder
- Computer muβ laufend ankommende Freizeichen oder Blocks
- bearbeiten. Um diese Arbeti im Hintergrund laufen zu lassen, ist
- in das Programm eine in Assembler geschriebene Interruptroutine
- eingebunden, die den Blockweisen Verkehr auf dem Netz bearbeitet.
- Die Routine arbeitet bis zum abschalten oder Rücksetzen des
- Computers. Mit jedem Vertical Blank Interrupt (VBI), also nach
- zeichnen eines Bildes, ruft MIDInet diese Routine auf. Das
- passiert pro Sekunde 71 mal. Der Anwender merkt davon nichts und
- der ST arbeitet nicht spürbar langsamer.
-
- Die durchschnittliche Verzögerung bei der Weitergabe eines
- Blocks beträgt 1/2 * 1/71 Sekunden, etwa 7 ms. In einem Netz mit
- drei Computern kreist das Freizeichen etwa 50 mal je Sekunde. Da
- der Verwaltungsaufwand mit steigender Computerzahl zunimmt,
- verringert sich dann diese Umlaufgeschwindigkeit.
-
- Wie schon erwähnt, betreut die Interruptroutine den gesamten
- Netzverkehr. Jetzt muβ man nur noch die zu übertragenden Daten in
- Blöcke zerlegen, um sie anschlieβend erneut aufzubauen.
-
- Um höheren Anwendungskomfort zu erreichen, haben wir ein
- Accessory programmiert. Es bildet die Schnittstelle Anwender/Netz
- und arbeitet vollständig mit Dialogboxen. Das Accessory ist in
- ST Pascal plus geschrieben. Das Hilfsprogramm steht, solange Sie
- unter GEM arbeiten, bereit. Sobald TOS-Applikationen laufen, also
- ohne Maus und Menüleiste, läβt sich das Accessory nicht
- aktivieren. Die Interruptroutine jedoch läuft weiter und hält das
- Netz aufrecht.
-
- Accessory und Interruptroutine haben einen gemeinsamen
- Speicherbereich, in dem zwei je 128 Byte lange Puffer und einige
- Flags liegen. Den genauen Aufbau finden Sie in Bild 5.
-
- Was passiert beim Senden einer Nachricht?
-
- Der Benutzer aktiviert das Hilfsprogramm und klickt die
- Nummern der/des Empfänger an, denn das können auch mehrere sein.
- Anschlieβend schreibt er die Nachricht in eine Dialogbox. Mit
- dem senden der Nachricht kopiert sie der Computer in den
- Sendepuffer. Das Accessory setzt das >>Send Request<<-Flag. Es
- zeigt der Interruptroutine an, daβ Daten zum Senden bereitstehen.
- Wenn nun die Interruptroutine das Freizeichen empfängt, übergibt
- sie stattdessen den Datenblock an das Netz.
-
- Die Interruptroutine des Empfängers kopiert den Block in den
- Empfangspuffer, setzt das Flag >>Receive Request<<, das dem
- Accessory Empfangsbereitschaft anzeigt, und sendet eine
- Bestätigung zurück. Sobald die Bestätigung beim Absender des
- Datenblocks ankommt, sendet der ein Freizeichen. Damit ist die
- Übertragung einer Nachricht abgeschlossen. Bei der nächsten
- Gelegenheit zeichnet das Accessory des Empfängers dann eine
- Dialogbox auf den Bildschirm und schreibt den Text der Nachricht
- sowie die Nummer des Absenders hinein (Bild 6).
-
- Stimmen die Prüfsummen nicht überein, fordert die
- Interruptroutine des Empfängers bei Sender den Block erneut an.
- Auβer einem Glöckchen (CHR(7)) merkt der Anwender davon nichts.
-
- Anfangs gab es Schwierigkeiten, da ein Datenblock meistens
- nicht vollständig vor dem nächsten Interrupt beim Empfänger
- angekommen ist. Das haben wir gelöst, indem die Interruptroutine
- die Kontrolle wieder abgibt, sobald alle bisher angekommenen
- Zeichen bearbeitet sind. Dabei >>merkt<< Sie sich die Position,
- an der sie beim nächsten Interrupt weiterarbeiten muβ. Auf diese
- Weise verliert das System keine Zeit mit Warten auf Rest von
- Blöcken.
-
- Im Sendebetrieb bleibt Die Interruptroutine so lange aktiv,
- bis der Block vollständig übertragen wurde. Das dauert zwar mit
- 41 Millisekunden wesentlich länger als für den VBI erlaubt ist,
- allerdings flimmert das Bild nicht und hat keinerlei negative
- Auswirkungen. Der Geschwindigkeit des Netzes kommt es zugute.
-
- Geht eine Nachricht an mehrere Empfänger, sendet sie das Netz
- mehrmals nacheinander. Nachrichten kann man auch an sich selber
- schicken.
-
- Ist der Empfangspuffer des Empfänger noch belegt, weil sich
- der Teilnehmer im TOS befidnet und deshalb das Accessory nicht
- arbeitet oder die letzte Nachricht gerade erst lieβt, kann es zu
- Problöemen kommen. Dann löscht die Interruptroutine des
- Empfängers den Datenblock vom Netz und sendet keine Bestätigung,
- sondern ein Freizeichen. Der Sender wartet vergeblich auf eine
- Bestätigung und meldet das über eine Bildschirmmaske. Der
- Sendende kann dann den Vorgang wiederholen oder abbrechen.
-
- Besitzt kein Computer im Netz die Nummer des Empfängers, kommt
- der Block unverändert wieder beim Absender an. Auch hier erhält
- der Anwender eine Meldung.
-
- Wir müssen erwähnen, daβ Sie machtlos gegenüber
- Übertragungsfehlern in der Adresse oder in der Länge des
- Datenblocks sind. In einem solchen Fall bleibt das Netz
- normalerweise einfach stehen, bis der Empfänger des gestörten
- Blocks sein Accessory neu installiert hat. Solche schweren Fehler
- sind jedoch äuβerst selten.
-
- Wie werden Dateien gesendet?
-
- Die Software zerlegt alle Dateien in Blöcke und behandelt
- diese dann wie Nachrichten. Der Absender klickt den gewünschten
- Empfänger an, wählt >>Datei senden<< an und kann mit der
- bekannten File Selector Box eine Datei zum Übertragen auswählen.
-
- Der erste gesendete Block enthält den Dateinamen und dessen
- Datenteil mit einer 0 beginnend. Dadurch wird das Accessory des
- Empfängers automatisch auf Dateiempfang geschaltet. Der Empfänger
- bestimmt jetzt, wo und unter welchem Namen die Information
- abgelegt wird. Dem Anwedner stehen die Hauptverzeichnisse von A:\
- bis D:\ zur Wahl. Auβerdem können Sie auch den Pfad über die File
- Selector Box auswählen. Die folgende blockweise Übertragung der
- Daten ist bei den Gesprächspartnern in Dialogboxen sichtbar.
- Zwischendurch läβt sich eine einmal begonnene Übertragung nicht
- abbrechen.
-
- Hier spielt das erwähnte Schluβ-Kennzeichen der Blöcke eine
- Rolle. In Jedem dieser Blöcke steht am Ende eine 255 vor der
- Prüfsumme als Zeichen, daβ die Übermittlung noch nicht
- abgeschlossen ist. Der letzte Block endet mit einer 0 und
- veranlaβt damit das Schlieβen der Dateien.
-
- Die Datenübertragung wirft Synchronisationsprobleme auf.
- Sendet man beispielsweise von einer RAM-Disk Informationen auf
- eine Diskette, dann stellt der Sender die Sende-Blöcke sehr
- schnell zusammen. Der Empfänger dagegen benötigt wesentlich mehr
- Zeit zum Schreiben der Daten. Daher kann es passieren, daβ der
- Sender laufend Informationen überträgt, ohne daβ der Empfänger
- diese in einen Puffer legen kann. In Wirklichkeit findet dann
- keine Datenübertrgung statt.
-
- Um dem abzuhelfen sendet hier nicht die Interruptroutine das
- Quittierungssignal, sondern das Accessory. Dies geschieht erst
- dann, wenn der Empfangspuffer frei ist. Unsere Versuche haben
- eine wesentliche Beschleunigung der Übertragung mit diesem
- Verfahren ergeben.
-
- Kann man Dateien nur senden?
-
- Eine weitere Fähigkeit von MIDInet ist die Anforderung von
- Dateien anderer Teilnehmer. Dazu müssen Sie den vollständigen
- Pfadname zur gewählten Datei auf dem anderen Computer, etwa
- E:\PASCAL\GRAFIK.PAS, eingeben. Zusätzlich muβ der >>Eigentümer<<
- der gewünschten Datei diese zum Senden freigegeben haben. Wer
- will schon gerne Privatpost auf dem Netz kreisen sehen...
-
- In der Datei Midinet.INF sind Pfade zu finden. Findet der
- Computer in dieser Datei den Pfadnamen der angeforderten Daten,
- sind die angeforderten Informationen freigegeben und werden
- gesendet. Andernfalls bekommt der Anfordernde eine Fehlermeldung.
- Steht zum Beispiel E:\POOL\ in Midinet.INF, so können Sie alle
- Dateien aus dem POOL und den darin enthaltenen
- Unterverzeichnissen anfordern.
-
- Eine Anforderung läuft folgendermassen ab. Der Anfordernde
- sendet einen Datenblock, der den Pfadnamen enthält sowie dessen
- Datenteil mit einer 1 beginnt. Das schstellt das Hilfsprogramm
- des Empfängers auf Datenanforderung um. Dann erfolgt die Prüfung
- durch den Empfänger, ob die gesuchte Datei zum, Senden
- freigegeben ist.
-
- Kann immer nur einer das Netz benutzen?
-
- Da in jedem Block neben dem Empfänger auch der Absender steht,
- können mehrere Teilnehmer gleichzeitig auf dem Netz arbeiten.
- Jeder Anwender kann aber zu einem Zeitpunkt nur eine Nachricht
- senden oder Datei anfordern. 1 kann an 3 eine Datei senden,
- während 2 und 4 Nachrichten austauschen.
-
- Wenn ein Teilnehmer, der eine Datei sendet, eine Nachricht
- erhält, wird diese nicht angenommen. Der Absender der Nachricht
- erhält eine entsprechende Meldung und kann den Versuch
- wiederholen oder abbrechen.
-
- Wie installiert man MIDInet?
-
- Neben den Überspielkabeln braucht man vier Dateien:
-
- MIDINET.ACC das Accessory
- MIDINET.RSC das Resourcsfile dazu
- MIDINET.PRG die Interruptroutine
- MIDINET.INF die Zugriffsrechte
-
- Alle vier Dateien müssen auf dem Laufwerk zur Verfügung
- stehen, von dem aus Sie den Computer starten. Bei jeder
- Datenanforderung liest das System die Datei Midinet.INF.
-
- Das Accessory installiert sich selbsttätig während des
- Bootvorganges. Nach etwa 3 Sekunde erscheint eine Dialogbox, in
- die eigene Teilnehmernummer einzutragen ist. Das Netz arbeitet
- nur dann richtig, wenn alle Teilnehmer unterschiedliche Nummmern
- besitzen. Das war auch schon alles, was der Benutzer zu tun hat.
-
- Das Accessory initialisiert nun seinerseits den Puffer. Dann
- lädt und startet es mit der Funktion >>pexec<< (GEMDOS $4B) die
- Interruptroutine, wobei die Kommandozeile die Adresse des Puffers
- angibt. Die Interruptroutine bindet sich in den VBI ein und ist
- damit aktiv.
-
- Abschlieβend wird der Puffer gelöscht und ein Freizeichen
- gesendet. Auf dem Netz darf immer nur ein Freizeichen kreisen.
-
- Gibt es keine Probleme, wenn jeder Teilnehmer einfach so ein
- Freizeichen sendet? Es ist sehr unwahrscheinlich, daβ zwei
- Teilnehmer innerhalb von 10 Millisekunden mit dem Installieren
- fertig sind. Deshalb häufen sich die gesendeten Freizeichen im
- Puffer des letzten nicht installierten Teilnehmers. Wenn der
- den Puffer löscht, sind alle überflüssigen Zeichen eliminiert
- und nur noch das von diesem Teilnehmer gesendete Freizeichen
- kreist auf dem Netz.
-
- Soviel zur Bedienung von MIDInet. Als Erweiterung der
- Fähigkeiten sind Routinen zum Senden und Empfangen von Blöcken
- über den XBIOS-Vektor geplant. Damit kann man dann in jeder
- beliebigen Sprache, die XBIOS-Aufrufe beherrscht, Programme
- schreiben und mit ihnen auf mehreren Computern mit- oder
- gegeneinander arbeiten. Beispiele hierfür sind eine verteilte
- Datenbank oder ein Adventure, an dem mehrere Spieler an
- verschiedenen Computern teilnehmen. Zusätzlich arbeiten wir an
- einer neuen File Selector Box, die besser als die zu kleine,
- übliche Box ist und über das Netz auch das Blättern auf den
- Laufwerken aller anderen Teilnehmer erlaubt.
-
- Bei der Token-Ring-Architektur müssen alle am Netz beteiligten
- Computer eingeschaltet sein und MIDInet geladen haben, damit das
- Netz funktioniert. Vielleicht kann ein Hardwarebastler eine
- Schaltung entwerfen, die das Netz durchschleift, wenn der
- entsprechende Computer ausgeschaltet ist. Natürlich geht das mit
- einem Zwischenstecker, aber eine Schaltung wäre schöner.
-